Python দিয়ে SVM তৈরি

Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - সাপোর্ট ভেক্টর মেশিন (Support Vector Machine - SVM)
436

Support Vector Machine (SVM) একটি শক্তিশালী মেশিন লার্নিং অ্যালগরিদম যা প্রধানত ক্লাসিফিকেশন সমস্যা সমাধানে ব্যবহৃত হয়। এটি দুটি শ্রেণির মধ্যে সীমানা (boundary) তৈরি করে, যেখানে সেই সীমানার প্রতিটি পাশ থেকে যতটা সম্ভব ডেটা পয়েন্ট দূরে থাকবে। SVM সাধারণত লিনিয়ার এবং নন-লিনিয়ার ক্লাসিফিকেশন সমস্যা সমাধান করতে ব্যবহৃত হয়।

এখানে Python ব্যবহার করে একটি সাধারণ SVM ক্লাসিফিকেশন মডেল তৈরির উদাহরণ দেওয়া হল।


ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

প্রথমে আপনার সিস্টেমে scikit-learn লাইব্রেরি ইনস্টল থাকতে হবে, যা SVM মডেল তৈরি এবং প্রশিক্ষণের জন্য ব্যবহৃত হয়।

pip install scikit-learn

ধাপ ২: ডেটা লোড এবং প্রক্রিয়াকরণ

এখানে আমরা Iris ডেটাসেট ব্যবহার করব, যা একটি সাধারণ ডেটাসেট এবং এটি SVM মডেলের জন্য আদর্শ। আমরা sklearn.datasets থেকে Iris ডেটাসেট লোড করব এবং মডেল তৈরি করার জন্য কিছু প্রাথমিক ডেটা প্রক্রিয়াকরণ করব।

# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট করা
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# Iris ডেটাসেট লোড করা
iris = datasets.load_iris()
X = iris.data  # ইনপুট ফিচার
y = iris.target  # আউটপুট (লেবেল)

# ডেটা টেস্ট এবং ট্রেনিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# ডেটা স্কেলিং (SVM এর জন্য স্কেলিং খুবই গুরুত্বপূর্ণ)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

ধাপ ৩: SVM মডেল তৈরি এবং প্রশিক্ষণ

এখন আমরা SVM মডেল তৈরি করব এবং তা ট্রেনিং ডেটা দিয়ে প্রশিক্ষণ (training) করব।

# SVM মডেল তৈরি করা
svm_model = SVC(kernel='linear')  # 'linear' কের্নেল ব্যবহার করা
svm_model.fit(X_train, y_train)  # মডেল প্রশিক্ষণ

# পূর্বাভাস করা
y_pred = svm_model.predict(X_test)

# মডেল মূল্যায়ন
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy * 100:.2f}%')

ধাপ ৪: ফলাফল বিশ্লেষণ

প্রশিক্ষিত মডেলটি টেস্ট ডেটার উপর পূর্বাভাস করবে এবং তারপর আমরা মডেলের অ্যাকুরেসি (accuracy) মাপব।


কাস্টম কের্নেল ব্যবহার

SVM এর একটি শক্তিশালী বৈশিষ্ট্য হল এটি বিভিন্ন ধরনের কের্নেল ব্যবহার করতে পারে, যেমন রেডিয়াল বেসিস ফাংশন (RBF), 폴িনোমিয়াল কের্নেল ইত্যাদি। রেডিয়াল বেসিস ফাংশন (RBF) কের্নেলটি সাধারণত নন-লিনিয়ার ডেটা সেগমেন্টেশনের জন্য ব্যবহার করা হয়।

# RBF কের্নেল ব্যবহার করা
svm_model_rbf = SVC(kernel='rbf')
svm_model_rbf.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred_rbf = svm_model_rbf.predict(X_test)

# মডেল মূল্যায়ন
accuracy_rbf = accuracy_score(y_test, y_pred_rbf)
print(f'Accuracy with RBF kernel: {accuracy_rbf * 100:.2f}%')

সারাংশ

  • SVM একটি শক্তিশালী এবং জনপ্রিয় ক্লাসিফিকেশন অ্যালগরিদম, যা খুব ভালো কাজ করে ছোট এবং মাঝারি আকারের ডেটাসেটে।
  • স্কেলিং (scaling) সঠিকভাবে করা গুরুত্বপূর্ণ, কারণ SVM কের্নেলটি মাপের প্রতি অত্যন্ত সংবেদনশীল।
  • Linear এবং RBF কের্নেলসহ অন্যান্য কের্নেল ব্যবহার করা যায়, যা ডেটার প্রকারভেদে কার্যকরী হয়।
  • Scikit-learn লাইব্রেরি ব্যবহার করে সহজেই SVM মডেল তৈরি, প্রশিক্ষণ এবং মূল্যায়ন করা সম্ভব।

এই উদাহরণটি ডেটার মাত্রা কম রাখার জন্য Iris ডেটাসেট ব্যবহার করেছে, তবে বৃহৎ ডেটাসেটেও SVM কার্যকরী হতে পারে, যদি সঠিকভাবে স্কেল করা হয় এবং কের্নেল নির্বাচিত হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...